package cn.com.blueInfo.HaiYuan.business.purchase.mapper;

import cn.com.blueInfo.HaiYuan.business.purchase.entity.PurchaseBase;
import cn.com.blueInfo.HaiYuan.business.purchase.entity.PurchaseDetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 采购单明细行信息表
 * @ClassName: PurchaseDetailMapper
 * @tableName: tj_hai_purchase_detail
 * @author suxch
 * @date 2020年11月7日  下午2:30:58
 */
@Mapper
public interface PurchaseDetailMapper extends BaseMapper<PurchaseDetail> {

    /**
     * 批量新增采购单明细行信息
     * @Title: batchAddPurchaseDetailInfo
     * @param purchaseDetailList
     * @return int
     * @throws
     */
    int batchAddPurchaseDetailInfo(List<PurchaseDetail> purchaseDetailList);

    /**
     * 新增采购单明细行信息
     * @Title: addPurchaseDetailInfo
     * @param purchaseDetail
     * @return int
     * @throws
     */
    int addPurchaseDetailInfo(PurchaseDetail purchaseDetail);

    /**
     * 批量删除采购单明细行信息
     * @Title: batchDelPurchaseDetailInfoByUnids
     * @param purchaseDetailUnids
     * @return int
     * @throws
     */
    int batchDelPurchaseDetailInfoByUnids(ArrayList<String> purchaseDetailUnids);

    /**
     * 删除采购单明细行信息
     * @Title: delPurchaseDetailInfoByUnid
     * @param unid
     * @return int
     * @throws
     */
    int delPurchaseDetailInfoByUnid(String unid);

    /**
     * 批量更新采购单明细行信息
     * @Title: batchUpdatePurchaseDetailInfoByUnid
     * @param purchaseDetailList
     * @return int
     * @throws
     */
    int batchUpdatePurchaseDetailInfoByUnid(List<PurchaseDetail> purchaseDetailList);

    /**
     * 更新采购单明细行信息
     * @Title: updatePurchaseDetailInfoByUnid
     * @param purchaseDetail
     * @return int
     * @throws
     */
    int updatePurchaseDetailInfoByUnid(PurchaseDetail purchaseDetail);

    /**
     * 分页查询采购单明细行信息
     * @Title: queryPurchaseDetailInfo
     * @param paramMap
     * @return List<PurchaseDetail>
     * @throws
     */
    List<PurchaseDetail> queryPurchaseDetailInfo(Map<String, Object> paramMap);

    /**
     * 查询采购单明细行信息
     * @Title: queryPurchaseDetailInfo
     * @return List<PurchaseDetail>
     * @throws
     */
    List<PurchaseDetail> queryPurchaseDetailInfo();

    /**
     * 条件查询采购单明细行信息数量
     * @Title: queryPurchaseDetailInfoCount
     * @param paramMap
     * @return Integer
     * @throws
     */
    Integer queryPurchaseDetailInfoCount(Map<String, Object> paramMap);

    /**
     * 查询采购单明细行信息数量
     * @Title: queryPurchaseDetailInfoCount
     * @return Integer
     * @throws
     */
    Integer queryPurchaseDetailInfoCount();

    /**
     * 查询明细行最大编号
     * @Title: queryMaxDetailLineNumber
     * @return Integer
     * @throws
     */
    Integer queryMaxDetailLineNumber(Map<String, Object> paramMap);

    /**
     * 获取打印数据
     * @Title: queryPrintData
     * @param paramMap
     * @return List<PurchaseBase>
     * @throws
     */
    List<PurchaseBase> queryPrintData(Map<String, Object> paramMap);

}
